home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / swing / GroupLayout$BaselineGroup.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  3.7 KB  |  241 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Component.BaselineResizeBehavior;
  5. import javax.swing.GroupLayout.1;
  6. import javax.swing.GroupLayout.Alignment;
  7.  
  8. class GroupLayout$BaselineGroup extends GroupLayout.ParallelGroup {
  9.    private boolean allSpringsHaveBaseline;
  10.    private int prefAscent;
  11.    private int prefDescent;
  12.    private boolean baselineAnchorSet;
  13.    private boolean baselineAnchoredToTop;
  14.    private boolean calcedBaseline;
  15.    // $FF: synthetic field
  16.    final GroupLayout this$0;
  17.  
  18.    GroupLayout$BaselineGroup(GroupLayout var1, boolean var2) {
  19.       super(var1, Alignment.LEADING, var2);
  20.       this.this$0 = var1;
  21.       this.prefAscent = this.prefDescent = -1;
  22.       this.calcedBaseline = false;
  23.    }
  24.  
  25.    GroupLayout$BaselineGroup(GroupLayout var1, boolean var2, boolean var3) {
  26.       this(var1, var2);
  27.       this.baselineAnchoredToTop = var3;
  28.       this.baselineAnchorSet = true;
  29.    }
  30.  
  31.    void unset() {
  32.       super.unset();
  33.       this.prefAscent = this.prefDescent = -1;
  34.       this.calcedBaseline = false;
  35.    }
  36.  
  37.    void setValidSize(int var1, int var2, int var3) {
  38.       this.checkAxis(var1);
  39.       if (this.prefAscent == -1) {
  40.          super.setValidSize(var1, var2, var3);
  41.       } else {
  42.          this.baselineLayout(var2, var3);
  43.       }
  44.  
  45.    }
  46.  
  47.    int calculateSize(int var1, int var2) {
  48.       this.checkAxis(var1);
  49.       if (!this.calcedBaseline) {
  50.          this.calculateBaselineAndResizeBehavior();
  51.       }
  52.  
  53.       if (var2 == 0) {
  54.          return this.calculateMinSize();
  55.       } else if (var2 == 2) {
  56.          return this.calculateMaxSize();
  57.       } else {
  58.          return this.allSpringsHaveBaseline ? this.prefAscent + this.prefDescent : Math.max(this.prefAscent + this.prefDescent, super.calculateSize(var1, var2));
  59.       }
  60.    }
  61.  
  62.    private void calculateBaselineAndResizeBehavior() {
  63.       this.prefAscent = 0;
  64.       this.prefDescent = 0;
  65.       int var1 = 0;
  66.       Component.BaselineResizeBehavior var2 = null;
  67.  
  68.       for(GroupLayout.Spring var4 : this.springs) {
  69.          if (var4.getAlignment() == null || var4.getAlignment() == Alignment.BASELINE) {
  70.             int var5 = var4.getBaseline();
  71.             if (var5 >= 0) {
  72.                if (var4.isResizable(1)) {
  73.                   Component.BaselineResizeBehavior var6 = var4.getBaselineResizeBehavior();
  74.                   if (var2 == null) {
  75.                      var2 = var6;
  76.                   } else if (var6 != var2) {
  77.                      var2 = BaselineResizeBehavior.CONSTANT_ASCENT;
  78.                   }
  79.                }
  80.  
  81.                this.prefAscent = Math.max(this.prefAscent, var5);
  82.                this.prefDescent = Math.max(this.prefDescent, var4.getPreferredSize(1) - var5);
  83.                ++var1;
  84.             }
  85.          }
  86.       }
  87.  
  88.       if (!this.baselineAnchorSet) {
  89.          if (var2 == BaselineResizeBehavior.CONSTANT_DESCENT) {
  90.             this.baselineAnchoredToTop = false;
  91.          } else {
  92.             this.baselineAnchoredToTop = true;
  93.          }
  94.       }
  95.  
  96.       this.allSpringsHaveBaseline = var1 == this.springs.size();
  97.       this.calcedBaseline = true;
  98.    }
  99.  
  100.    private int calculateMaxSize() {
  101.       int var1 = this.prefAscent;
  102.       int var2 = this.prefDescent;
  103.       int var3 = 0;
  104.  
  105.       for(GroupLayout.Spring var5 : this.springs) {
  106.          int var7 = var5.getMaximumSize(1);
  107.          int var6;
  108.          if ((var5.getAlignment() == null || var5.getAlignment() == Alignment.BASELINE) && (var6 = var5.getBaseline()) >= 0) {
  109.             int var8 = var5.getPreferredSize(1);
  110.             if (var8 != var7) {
  111.                switch (1.$SwitchMap$java$awt$Component$BaselineResizeBehavior[var5.getBaselineResizeBehavior().ordinal()]) {
  112.                   case 1:
  113.                      if (this.baselineAnchoredToTop) {
  114.                         var2 = Math.max(var2, var7 - var6);
  115.                      }
  116.                      break;
  117.                   case 2:
  118.                      if (!this.baselineAnchoredToTop) {
  119.                         var1 = Math.max(var1, var7 - var8 + var6);
  120.                      }
  121.                }
  122.             }
  123.          } else {
  124.             var3 = Math.max(var3, var7);
  125.          }
  126.       }
  127.  
  128.       return Math.max(var3, var1 + var2);
  129.    }
  130.  
  131.    private int calculateMinSize() {
  132.       int var1 = 0;
  133.       int var2 = 0;
  134.       int var3 = 0;
  135.       if (this.baselineAnchoredToTop) {
  136.          var1 = this.prefAscent;
  137.       } else {
  138.          var2 = this.prefDescent;
  139.       }
  140.  
  141.       for(GroupLayout.Spring var5 : this.springs) {
  142.          int var6 = var5.getMinimumSize(1);
  143.          int var7;
  144.          if ((var5.getAlignment() == null || var5.getAlignment() == Alignment.BASELINE) && (var7 = var5.getBaseline()) >= 0) {
  145.             int var8 = var5.getPreferredSize(1);
  146.             Component.BaselineResizeBehavior var9 = var5.getBaselineResizeBehavior();
  147.             switch (1.$SwitchMap$java$awt$Component$BaselineResizeBehavior[var9.ordinal()]) {
  148.                case 1:
  149.                   if (this.baselineAnchoredToTop) {
  150.                      var2 = Math.max(var6 - var7, var2);
  151.                   } else {
  152.                      var1 = Math.max(var7, var1);
  153.                   }
  154.                   break;
  155.                case 2:
  156.                   if (!this.baselineAnchoredToTop) {
  157.                      var1 = Math.max(var7 - (var8 - var6), var1);
  158.                   } else {
  159.                      var2 = Math.max(var8 - var7, var2);
  160.                   }
  161.                   break;
  162.                default:
  163.                   var1 = Math.max(var7, var1);
  164.                   var2 = Math.max(var8 - var7, var2);
  165.             }
  166.          } else {
  167.             var3 = Math.max(var3, var6);
  168.          }
  169.       }
  170.  
  171.       return Math.max(var3, var1 + var2);
  172.    }
  173.  
  174.    private void baselineLayout(int var1, int var2) {
  175.       int var3;
  176.       int var4;
  177.       if (this.baselineAnchoredToTop) {
  178.          var3 = this.prefAscent;
  179.          var4 = var2 - var3;
  180.       } else {
  181.          var3 = var2 - this.prefDescent;
  182.          var4 = this.prefDescent;
  183.       }
  184.  
  185.       for(GroupLayout.Spring var6 : this.springs) {
  186.          GroupLayout.Alignment var7 = var6.getAlignment();
  187.          if (var7 != null && var7 != Alignment.BASELINE) {
  188.             this.setChildSize(var6, 1, var1, var2);
  189.          } else {
  190.             int var8 = var6.getBaseline();
  191.             if (var8 >= 0) {
  192.                int var9 = var6.getMaximumSize(1);
  193.                int var10 = var6.getPreferredSize(1);
  194.                int var11 = var10;
  195.                int var12;
  196.                switch (1.$SwitchMap$java$awt$Component$BaselineResizeBehavior[var6.getBaselineResizeBehavior().ordinal()]) {
  197.                   case 1:
  198.                      var12 = var1 + var3 - var8;
  199.                      var11 = Math.min(var4, var9 - var8) + var8;
  200.                      break;
  201.                   case 2:
  202.                      var11 = Math.min(var3, var9 - var10 + var8) + (var10 - var8);
  203.                      var12 = var1 + var3 + (var10 - var8) - var11;
  204.                      break;
  205.                   default:
  206.                      var12 = var1 + var3 - var8;
  207.                }
  208.  
  209.                var6.setSize(1, var12, var11);
  210.             } else {
  211.                this.setChildSize(var6, 1, var1, var2);
  212.             }
  213.          }
  214.       }
  215.  
  216.    }
  217.  
  218.    int getBaseline() {
  219.       if (this.springs.size() > 1) {
  220.          this.getPreferredSize(1);
  221.          return this.prefAscent;
  222.       } else {
  223.          return this.springs.size() == 1 ? ((GroupLayout.Spring)this.springs.get(0)).getBaseline() : -1;
  224.       }
  225.    }
  226.  
  227.    Component.BaselineResizeBehavior getBaselineResizeBehavior() {
  228.       if (this.springs.size() == 1) {
  229.          return ((GroupLayout.Spring)this.springs.get(0)).getBaselineResizeBehavior();
  230.       } else {
  231.          return this.baselineAnchoredToTop ? BaselineResizeBehavior.CONSTANT_ASCENT : BaselineResizeBehavior.CONSTANT_DESCENT;
  232.       }
  233.    }
  234.  
  235.    private void checkAxis(int var1) {
  236.       if (var1 == 0) {
  237.          throw new IllegalStateException("Baseline must be used along vertical axis");
  238.       }
  239.    }
  240. }
  241.